<?php 
function ValidateMail($Email) { 
            global $HTTP_HOST; 
    $result = array(); 
	
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $Email)) { 

  $result[0]=false; 
        $result[1]="$Email is not properly formatted"; 
        return $result; 
    } 
	
   list ( $Username, $Domain ) = split ("@",$Email); 

   if (getmxrr($Domain, $MXHost))  { 

        $ConnectAddress = $MXHost[0]; 
    } else { 

        $ConnectAddress = $Domain; 

    } 
        $Connect = fsockopen ( $ConnectAddress, 25 ); 

    if ($Connect) { 

        if (ereg("^220", $Out = fgets($Connect, 1024))) { 

           fputs ($Connect, "HELO $HTTP_HOST\r\n"); 
           $Out = fgets ( $Connect, 1024 ); 
           fputs ($Connect, "MAIL FROM: <{$Email}>\r\n"); 
           $From = fgets ( $Connect, 1024 ); 
           fputs ($Connect, "RCPT TO: <{$Email}>\r\n"); 
           $To = fgets ($Connect, 1024); 
           fputs ($Connect, "QUIT\r\n"); 
           fclose($Connect); 
            if (!ereg ("^250", $From) || !ereg ( "^250", $To )) { 
               $result[0]=false; 
               $result[1]="Server rejected address"; 
               return $result; 

            } 
        } else { 

            $result[0] = false; 
            $result[1] = "No response from server"; 
            return $result; 
          } 

    }  else { 

        $result[0]=false; 
        $result[1]="Can not connect E-Mail server."; 
        return $result; 
    } 
    $result[0]=true; 
    $result[1]="$Email appears to be valid."; 
    return $result; 
} // end of function 
?> 